1. Field of the Invention
The present invention is directed to computer systems; and more particularly, it is directed to the use of color models in digital images using computer systems.
2. Description of the Related Art
Digital image editing is the process of creating and/or modifying digital images using a computer system. Using specialized software programs, users may manipulate and transform images in a variety of ways. These digital image editors may include programs of differing complexity such as limited-purpose programs associated with acquisition devices (e.g., digital cameras and scanners with bundled or built-in programs for managing brightness and contrast); limited bitmap editors suitable for relatively simple operations such as rotating and cropping images; and professional-grade programs such as Adobe Photoshop®, Adobe Illustrator®, and Adobe AfterEffects® (all available from Adobe Systems, Inc.) with large and complex feature sets.
Digital images may include raster graphics, vector graphics, or a combination thereof. Vector graphics data may be stored and manipulated as one or more geometric objects built with geometric primitives. The geometric primitives (e.g., points, lines, polygons, Bézier curves, and text characters) may be based upon mathematical equations to represent parts of digital images. Raster graphics data (also referred to herein as bitmaps) may be stored and manipulated as a grid of individual picture elements called pixels. A bitmap may be characterized by its width and height in pixels and also by the number of bits per pixel. Commonly, a color bitmap defined in the RGB (red, green blue) color space may comprise between one and eight bits per pixel for each of the red, green, and blue channels. An alpha channel may be used to store additional data such as per-pixel transparency values.
Many digital image editing operations may be applied selectively to a portion of the digital image. In selecting a portion of the digital image, a mask may be used to define a portion of a digital image on which an operation is sought to be performed. A hard mask may represent a binary, “all or nothing” inclusion or exclusion of pixels. A soft mask may comprise a mask having intermediate values which lie between the minimum and maximum values for membership in the mask. For example, a soft mask may potentially comprise integer values between 0 and 255 or floating-point values between 0 and 1. Soft masks may be used for gradual blending of selected pixels into surrounding regions of the digital image. Suitable operations may be applied to modify a mask. For example, various filters (e.g., Gaussian blur, median filter, add noise, reduce noise, fragment, unsharp mask), image adjustments (e.g., levels, curves, brightness/contrast, shadow/highlight), and other operations (e.g., resizing, cropping, thresholding, rotation, perspective distortion) may be applied to masks.
A selection may represent a region of interest in the digital image and may include one or more pixels (comprising one or more color channels) and/or geometric objects. A selection may be represented by a mask having a single channel indicating per-pixel membership in the selection. If the mask is a soft mask, then the selection may have elements with partial membership (e.g., feathered edges) indicated by an intermediate value in the mask. In most digital image editors, selections may be generated in various ways. For example, a marquee tool may permit the selection of rectangular or elliptical areas in an image. A lasso tool may allow the user to draw a freehand selection area. A magic wand tool may permit the selection of parts of an image based on a color range of pixels. Facilities such as edge detection, masking, alpha compositing, and color and channel-based extraction may also be used to generate selections. The pixels and/or objects in the selection may be contiguous or non-contiguous.
The Gaussian Mixture Model (GMM) is a statistical model that is commonly used in a variety of research and application areas such as the modeling of color distributions in digital images. For example, GMMs have been used to model human skin color distributions in RGB color space. In interactive image segmentation systems, GMMs have been used to model the user selected foreground and background colors and to generate a foreground probability map. In prior approaches, a fixed number of full Gaussian functions are typically used in a particular GMM used for modeling color distributions. In prior approaches, such a GMM is typically built in an off-line model by collecting color samples and then building the GMM once based on the color samples; if new samples are provided, then a new color model is typically built.